package com.kds.smarthome.service;

import com.kds.smarthome.entity.QuartzJobLog;
import java.util.List;
import java.util.Date;
import java.util.Map;

/**
 * Quartz任务日志服务接口
 */
public interface QuartzJobLogService {
    
    /**
     * 保存任务日志
     */
    void saveJobLog(QuartzJobLog jobLog);
    
    /**
     * 获取任务日志
     */
    QuartzJobLog getJobLogById(Long logId);
    
    /**
     * 获取任务的日志列表
     */
    List<QuartzJobLog> getJobLogs(String jobId);
    
    /**
     * 获取任务的最近日志
     */
    List<QuartzJobLog> getRecentJobLogs(String jobId, Integer count);
    
    /**
     * 根据条件查询任务日志
     * 
     * @param jobName 任务名称
     * @param jobGroup 任务组
     * @param status 执行状态
     * @param startTime 开始时间
     * @param endTime 结束时间
     */
    List<QuartzJobLog> getJobLogsByCondition(String jobName, String jobGroup, Integer status, 
                                           Date startTime, Date endTime);
    
    /**
     * 分页查询任务日志
     * 
     * @param jobId 任务ID
     * @param jobName 任务名称
     * @param jobGroup 任务组
     * @param status 执行状态
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 分页结果
     */
    Map<String, Object> getJobLogsByPage(String jobId, String jobName, String jobGroup, Integer status, 
                                       Date startTime, Date endTime, Integer pageNum, Integer pageSize);
    
    /**
     * 删除任务日志
     */
    void deleteJobLog(Long logId);
    
    /**
     * 清空指定日期之前的日志
     */
    void cleanJobLogs(Date beforeDate);
} 